<?xml version="1.0" encoding="UTF-8"?>
<!--Plantilla listado de contenidos para PC -->
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns:amp="mpeg7_amp" xmlns:voc="vocabularies" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="amp fn fo mpeg7 voc xs xsi">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>

<xsl:include href="top.xsl"></xsl:include>
<xsl:include href="down.xsl"></xsl:include>
<xsl:include href="utils.xsl"></xsl:include>


<!-- Parametros del xsl -->
<xsl:param name="time"/>
<xsl:param name="base_url"/>
<xsl:param name="keys_search"/>
<xsl:param name="action"/>
<xsl:param name="id"/>
<xsl:param name="start" select="1" as="xs:integer"/>
<xsl:param name="order"/>
<xsl:param name="media"/>

<xsl:variable name="contents_page">10</xsl:variable>
<xsl:variable name="base_img">img/pc/</xsl:variable>

	<xsl:template match="/mpeg7:Mpeg7">
		
		<!-- Llamada a la platilla top (compone la parte superior de la pagina )-->
                <xsl:call-template name="top"/>
                
                
                <!-- Varibles para los enlaces de ordenacion de los resultados-->
                <xsl:variable name="alfabetico">
                    <xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=1
                </xsl:variable>
                
                <xsl:variable name="rating">
                    <xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=1&amp;order=<xsl:text>rating</xsl:text>
                </xsl:variable>
                
                <!-- Numero total de contenidos obtenidos -->
                <xsl:variable name="total_contenidos"><xsl:value-of select="count(mpeg7:Description/mpeg7:MultimediaContent/mpeg7:Collection/mpeg7:ContentCollection/mpeg7:Content)"/></xsl:variable>
                
                <div class="post-footer">
                    <!--detallles de la busqueda -->
                    <div class="float-left">Resultados para la busqueda: <xsl:value-of select="$keys_search"/></div>
                    <div class="align-right">
                        <!-- Tiempo empleado en la solicitud -->
                        <!--Tiempo empleado: <xsl:value-of select="$time"/> ms-->
                        <!-- Numero total de contenidos obtenidos -->
                        Resultados obtenidos: <xsl:value-of select="$total_contenidos"/>
                        <br/>
                        Ordenar resultados por: <a><xsl:attribute name="href"><xsl:value-of select="$alfabetico"/></xsl:attribute> Alfabético</a> | <a><xsl:attribute name="href"><xsl:value-of select="$rating"/></xsl:attribute> Rating</a>
                    </div>
                </div>
                
                
                
                 
                <!--Dos columnas de contenido-->
                <table>
                <tr>
                    <!--Se lanza la plantilla que lista el contenido -->
                    <!--Se comprueba si existe un tipo de ordenacion requerida-->
                    <xsl:choose>
                        <xsl:when test="$order='rating'">
                            <xsl:apply-templates select="mpeg7:Description/mpeg7:MultimediaContent/mpeg7:Collection/mpeg7:ContentCollection/mpeg7:Content">
                                <!--Se ordena por rating-->
                                <xsl:sort select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Classification/mpeg7:MediaReview/mpeg7:Rating/mpeg7:RatingValue" order="descending"/>
                            </xsl:apply-templates>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:apply-templates select="mpeg7:Description/mpeg7:MultimediaContent/mpeg7:Collection/mpeg7:ContentCollection/mpeg7:Content"/>
                        </xsl:otherwise>
                    </xsl:choose>
                </tr>
                </table>
                
                
                <!-- Llamada a la plantilla paginador -->
                <xsl:call-template name="paginador">
                    <xsl:with-param name="total_contenidos" select="$total_contenidos"/>
                </xsl:call-template>
                

                <!-- Llamada a la plantilla down (compone la parte inferior de la pagina ) -->
		<xsl:call-template name="down"/>
		
	</xsl:template>


        <!--Calculamos el ultimo contenido que debe mostrarse en esta pagina-->
        <xsl:variable name="ultimo_content"><xsl:value-of select="$start+$contents_page"/></xsl:variable>




	<!-- ////////////////////////////////
        Plantilla para procesar cada contenido 
        //////////////////////////////////////////-->
	<xsl:template match="mpeg7:Content">


                <!-- Variable que controla la posicion actual para la paginacion de resultados -->
                <xsl:variable name="posicionactual" select="position()"/>

                <!-- Si el contador esta dentro del rango que se desea mostrar en la pagina -->
                <xsl:if test="$posicionactual &gt;= $start">
               
                    <xsl:if test="$posicionactual &lt;  $ultimo_content">

                       <xsl:if test="$posicionactual mod 2 !=0"></xsl:if>
                       <td class="celda">
                       <!--Inicio de contenido -->
                       <div class="post columna">
                                                                
                        <!--Titulo del contenido -->                      
                        <xsl:variable name="title">
                            <xsl:variable name="aux">
                                <xsl:call-template name="cleanTitle">
                                    <xsl:with-param name="string" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:Title"/>
                                </xsl:call-template>
                            </xsl:variable>
                            <xsl:call-template name="cortaTexto">
                                <xsl:with-param name="string" select="$aux"/>
                                <xsl:with-param name="long" select="35"/>
                            </xsl:call-template>
                        </xsl:variable>
                        <!--Identificador del contenido -->
                        <xsl:variable name="id"><xsl:value-of select="@id"/></xsl:variable>
                        <!-- Se obtiene el tipo del contenido -->
                        <xsl:variable name="type"><xsl:value-of select="@xsi:type"/></xsl:variable>
                        <!-- Nombre del repositorio desde el que se ha obtneido-->
                        <xsl:variable name="repository" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:Creator/mpeg7:Instrument/mpeg7:Tool/voc:Name"/>
                        <!-- Icono del repositorio -->
                        <xsl:variable name="iconRep" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:Creator/mpeg7:Instrument/mpeg7:Tool/voc:Definition"/>
                        <!-- Fecha de creaccion -->
                        <xsl:variable name="date" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:CreationCoordinates/mpeg7:Date/mpeg7:TimePoint"/>
                        <!-- Descripcion -->
                        <xsl:variable name="resume"><xsl:value-of select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:Abstract/mpeg7:FreeTextAnnotation"/></xsl:variable>
                            <div>
                            
                                    <h1><xsl:value-of select="$title"/></h1>

                                    <table>
                                      <tr valign="top">
                                         <td>
                                            <a><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;action=<xsl:value-of select="$action"/>&amp;id=<xsl:value-of select="$id"/>&amp;start=<xsl:value-of select="$start"/><xsl:call-template name="_order"/></xsl:attribute>
                                                <img>
                                                    <xsl:attribute name="src"><xsl:value-of select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:TitleMedia/mpeg7:TitleImage/mpeg7:MediaUri"/></xsl:attribute>
                                                </img>
                                            </a>
                                         </td>
                                         <td class="derecha">
                                            <div class="line">
                                                <!--Iconos del tipo y repositorio fuente -->
                                                <xsl:call-template name="getIcons"><xsl:with-param name="tipo" select="$type"/></xsl:call-template>
                                                <img><xsl:attribute name="src"><xsl:value-of select="$base_img"/><xsl:value-of select="$iconRep"/></xsl:attribute></img> 
                                                <!-- Mostramos parte de la descripcion -->
                                            </div>
                                            <div class="line">
                                                <xsl:call-template name="cortaTexto">
                                                    <xsl:with-param name="string" select="$resume"/>
                                                    <xsl:with-param name="long" select="70"/>
                                                </xsl:call-template>
                                            
                                            </div>
                                            <br/>
                                            <div class="line">
                                                <!-- Mostramos un enlace a la descripcion -->
                                                <a><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;action=<xsl:value-of select="$action"/>&amp;id=<xsl:value-of select="$id"/>&amp;start=<xsl:value-of select="$start"/><xsl:call-template name="_order"/></xsl:attribute>+ Detalles</a>
                                            </div>
                                         </td>
                                      </tr>
                                    </table>
    
                                    
                            </div>
                        </div>
                        </td>
                        <xsl:if test="$posicionactual mod 2 =0 and $posicionactual!=$ultimo_content"><xsl:text disable-output-escaping="yes"><![CDATA[</tr><tr>]]></xsl:text></xsl:if>
                        <!--Fin de contenido-->
                    </xsl:if>
                </xsl:if>
	</xsl:template>
        
        
        <!--///////////////////////////////////////////
        Plantilla que muestra el paginador de resultados
        //////////////////////////////////////////-->
        
        <xsl:template name="paginador">
            <xsl:param name="total_contenidos"/>
                <xsl:if test="$total_contenidos &gt; 0">
            
                <!--Obtenemos el numero de paginas totales para el paginador -->
                <xsl:variable name="numPages" select="$total_contenidos idiv $contents_page"/>
                <xsl:variable name="modulo" select="$total_contenidos mod $contents_page"/>
               
                <!--Numero para la pagina actual-->
                <xsl:variable name="actualPage" select="($start idiv $contents_page)+1"/>
              
                <xsl:variable name="page_fin" select="$numPages+1"/>
                <xsl:if test="$modulo = 0">
                    <xsl:variable name="page_fin" select="$numPages"/>
                </xsl:if>
                                              
                          
                <div id="paginacion">
                <!-- Enlace a pagina anterior-->
                <xsl:if test="$start - $contents_page &gt; 0">
                    <a class="paginador" id="anterior"><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=<xsl:value-of select="$start - $contents_page"/><xsl:call-template name="_order"/></xsl:attribute>Anterior</a> | 
                </xsl:if>
                
                <!-- Enlaces a los numeros de pagina -->
                <xsl:variable name="page_ini" select="1"/>
                
                <xsl:for-each select="$page_ini to $page_fin">
                    <xsl:variable name="page" select="position()"/>
                    <xsl:if test="$page != $actualPage">
                        <a  class="paginador"><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=<xsl:value-of select="$page * $contents_page -$contents_page+1"/><xsl:call-template name="_order"/></xsl:attribute><xsl:value-of select="$page"/></a>  
                    </xsl:if>
                    <!--El enlace a la pagina actual no se muestra -->
                    <xsl:if test="$page = $actualPage">
                        <span class="paginadorActual"><xsl:value-of select="$page"/></span>
                    </xsl:if>
                </xsl:for-each>
                
               
                <!-- Enlace a siguiente pagina -->
                <xsl:if test="$start + $contents_page &lt; $total_contenidos">
                    | <a class="paginador" id="siguiente"><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=<xsl:value-of select="$start + $contents_page"/><xsl:call-template name="_order"/></xsl:attribute>Siguiente</a>
                </xsl:if>
                </div>
                
                </xsl:if>
        </xsl:template>
        
        <!--/////////////////////////////////////////////////////
        Se obtiene la url para la paginacion si hay filtro de ordenacion
        //////////////////////////////////////////////-->
        <xsl:template name="_order">
            <!--Posible inclusion de filtro de ordenacion-->
            <xsl:choose>
                <xsl:when test="$order!=''">&amp;order=rating</xsl:when>
                <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
           
        </xsl:template>
        

        <!--///////////////////////////
            Obtiene los iconos de tipo de contenido y repositorio
        ///////////////////////////////////////////////////-->
        <xsl:template name="getIcons">
            <xsl:param name="tipo"/>
            <xsl:choose>
                <xsl:when test="$tipo='Mpeg7:ImageType'">
                    <xsl:variable name="icon_type"><xsl:value-of select="$base_img"/>imagen.gif</xsl:variable>
                    <xsl:variable name="type">imagen</xsl:variable>
                    <img class="iconL"><xsl:attribute name="src"><xsl:value-of select="$icon_type"/></xsl:attribute></img>   
                </xsl:when>
                <xsl:when test="$tipo='Mpeg7:AudioVisualType'">
                   <xsl:variable name="icon_type"><xsl:value-of select="$base_img"/>video.gif</xsl:variable>
                   <xsl:variable name="type">video</xsl:variable>
                   <img class="iconL"><xsl:attribute name="src"><xsl:value-of select="$icon_type"/></xsl:attribute></img>   
                </xsl:when>
                <xsl:otherwise>
                    <xsl:variable name="icon_type"><xsl:value-of select="$base_img"/>video.gif</xsl:variable>
                    <img class="iconL"><xsl:attribute name="src"><xsl:value-of select="$icon_type"/></xsl:attribute></img>   
                </xsl:otherwise>
            </xsl:choose>
            
                     
        </xsl:template>
</xsl:stylesheet>
